0. Inhalt 1 _______________________________________________________

1. Einfב¶hrung

1.1 ב£ber Megamax Modula 1 ΓêÆ 1

1.2 ב£ber dieses Handbuch 2

1.3 Kurze Modula−Bibliographie 3
Niklaus Wirth: Programmieren in Modula−2 3
Dal Cin/Lutz/Risse: Programmierung in Modula−2 3
Richard Gleaves: ModulaΓêÆ2 fב¶r PascalΓêÆProgrammierer 4
Dב¶rholt, Schnur: Atari ST ModulaΓêÆ2 Programmierhandbuch 4
Dieter & Jב¶rgen Geiבƒ: Softwareentwicklung auf dem Atari ST 5
Dieter & Jב¶rgen Geiבƒ: Vom Anfבñnger zum GEMΓêÆProfi 5
Jankowski, Rabich, Reschke: Das Atari−ST Profibuch 5

1.4 Megamax Modula: das Konzept 6
Implementations− und Definitionsmodule 6
"Loadtime Linking" 7
Benutzung des Linkers 8
1.5 Unser Service 9

Megamax Modula Exchange − MeMoX 9
Mailbox 1 0
Soforthilfe bei Fehlern 1 1

Quelltexte der Bibliothek 1 2

Assembler fב¶r 68020/30 und 68881/2 1 2

Portable Bibliotheken fב¶r den Atari ST / TT 1 3

ATD − Abstrakte Datentypen 1 4

Einbindung von Funktionen der Sprache C 1 4

1.6 Anmerkungen zu den Lizenzvereinbarungen 1 5
Software 1 5
Handbuch 1 5

Haftungsausschluבƒ 1 6

2. Bedienung des Megamax Modula−Systems

2.1 Los geht's − Installieren und Ausprobieren 2 − 1
Voraussetzungen 1

Die Modula−Disketten 2

Installation ohne Festplatte 4

Installation mit Festplatte 5
Speicherplatzmangel? 6

Mehr Geschwindigkeit... 7

Namenskonventionen 8

Mathe−Koprozessor (FPU, SFP 004, Atari TT 8
Ein erstes Programm 9

2.2 Shell 2 − 1 5
Aufruf der Shell 1 5
Das Shell−Desktop 1 5
Ausfב¶hren von Programmen und anderen Dateien 1 8

Ausfב¶hren speziell von CodeΓêÆDateien (Programme, Module) 1 9
Programmaufruf und −abbruch bei gelinkten Programmen 22

0. Inhalt 2
_______________________________________________________


Das Binden der Module 22

Resident−Laden von Code−Dateien (Programme, Module) 25

Laden gelinkter Programme 26
Menב¶zeile der Shell 28

Shell−Parameter 29
Umgebungsinformationen 30

Tasten−Funktionen 31

Batch−Dateien 32

Suchpfade und Pfadlisten 36

Umgang mit mehreren Projekten 39
Fehlermeldungen der Shell 41

2.3 Editor 2 − 43
Einfב¶hrung 43
Wahl des Editors 43

Vorbereitungen und Parameter 45
Aufruf des Editors 46

2.4 Compiler 2 − 47
Aufruf des Compilers 47
Die erzeugten Dateien 48
ב£bersetzungsfehler 48

Parameter 49

Definitions−Codes: Bibliothek und Komprimierung 50

Dekomprimieren der Dateien in der Library 51
Protokoll 51

2.5 Debugger 2 − 53
ב£bersetzen im DebugΓêÆModus 53
Ausfב¶hren im DebugΓêÆModus 54
Scanner − Suchen der Fehlerposition 55
Manuelles Scannen 56

2.6 Linker 2 − 59

Funktion 59

Bedienung 59

Fehlermeldungen 60
Parameter 61

Treiber− bzw. Konfigurationsmodule 61

Komprimierung (Optimierung) des erzeugten Programms 63

StackΓêÆGrבÀבƒe 65

Binden von Accessory−Programmen 65

Arbeitsweise des Linkers 65
2.7 Make und ModRef 2 − 69

Prinzip eines Make 69

Arbeitsweise von Make 69

Erzeugung einer Make−Datei (ModRef) 71

Anwendung von Make 72

Alle Module ב¶bersetzen (Build) 73

Fehlermeldungen des Make 73

Syntax der Make−Datei 74

0. Inhalt 3 _______________________________________________________


3. Programmieren in Megamax Modula−2

3.1 Sprachumfang 3 − 1
Wirthscher Standard (PIM−Standard) 1

ISO−Standard 2

Standard gegen Erweiterungen 3

Die MegamaxΓêÆImplementation: Einschrבñnkungen und Erweiterungen 4

Standardprozeduren 5

Standardtypen: GrבÀבƒe und Wertebereich 8

Standardkonstanten 8

Typen CARDINAL und INTEGER 8

Typen SHORTCARD und SHORTINT 9
Typen LONGCARD und LONGINT 9
Typen REAL und LONGREAL 1 0
Funktionen SHORT und LONG 1 1
Kompatibilitבñt von ADDRESS, POINTER, LONGCARD, Opaque 1 1
Angabe von SpeichergrבÀבƒen 1 1
Funktionen MIN und MAX 1 2
Exportlisten in Definitionsmodulen 1 2
Syntax eines Variant−Records 1 2
Unterbereichs−Deklaration 1 3
FORWARD−Deklaration 1 3

Externe Variable 1 3

Funktions−Prozeduren 1 4

Lokale Prozeduren als aktuelle Parameter 1 5

Zuweisungen von LONGCARD/−INT auf SHORTCARD/−INT 1 6

Bedingungen fב¶r Laufvariable von FORΓêÆSchleifen 1 6

SET−Konstrukturen 1 7

Mehrdimensionale offene Felder 1 8

GrבÀבƒe von INTEGER und CARDINAL 1 8

DatengrבÀבƒe bei Open Arrays 1 8

Aggregate (value constructor) 1 9

Verkettung von String−Konstanten 20

Funktion LENGTH 21
Funktionen FLOAT und LFLOAT 21

Funktion INT 21

Kompatibilitבñt bei Open Arrays 22

Kompatibilitבñt bei StringΓêÆZuweisungen 22

REF− (CONST−) Parameter 22

3.2 Interne Datenformate 3 − 25

Ablage von Strukturen im Speicher 25

SETs und BITSET 25

LONG−Werte 25

Packen von BYTE−Daten 26

3.3 Das SYSTEM−Modul 3 − 27
Typ ADDRESS 28
Typen LONGWORD, WORD, BYTE und LOC 28

0. Inhalt 4
_______________________________________________________


Funktionen ADR und TSIZE 29

Konstante CompilerVersion und CompilerSubVersion 29

Type BITNUM und Funktionen SHIFT und ROTATE 29
Funktion CAST 30

Funktion CADR 31

Prozeduren CODE, LOAD und STORE 31

Prozeduren CALLSYS und CALLEXT 32
Prozeduren NEWPROCESS, TRANSFER und LISTEN 33

Prozedur IOTRANSFER 34

Prozedur IOCALL 34

3.4 Compilerdirektiven 3 − 36
Syntax einer Direktive in der Compiler−Parameter−Box 36
Syntax einer Direktive im Programmtext 37

GroבƒΓêÆ/Kleinschreibung (Case Sensitivity) 37

Bereichsprב¶fungen (Range Checking) 38

StackplatzΓêÆPrב¶fung (S) 38

Testhilfen (Debugging, E) 39

Lokale Prozeduren als aktuelle Parameter (H) 40

Erweiterte Syntax (A) 40

Zuweisung LONGCARD/−INT auf SHORTCARD/−INT (K) 40

Automatische Register−Optimierung bei FOR−Schleifen (J) 40

Optimierte Rב¶ckgabe von Funktionsergebnissen im Register (Z) 41

SET−Format (U) 41

Register−Variable (Reg) 42

Mathe−Koprozessor (FPU) 43

Ausgaben des Compilers (Quiet Compilation) 44

Zugriff auf lokale Variable (Linking) 45

Wahl der Namensendung (Extension) 45

Einschieben externer Textfiles (Include File) 46

Bibliotheksvorgabe (Use Library) 47

Protokoll mit Statistik(V, P) 47

Bedingte Compilierung (?) 47

System−Module mit "shared data" (Y) 48

Entfernen nicht benבÀtigter Module beim optimierten Linken (B) 49

Compiler−Warnungen (W) 49

ב£bersicht: Compilerdirektiven 50

4. Der 68000 Assembler

4.1 Grundlagen und Syntax 4 − 1

Assembler−Anweisungen in Modula−Programmen 1

Aufbau von Assembleranweisungen 2

Befehlscodes und Adressierungsarten 2

Label (Marken) 3

Relative Sprב¶nge (Bcc & BSR) 4

4.2 Einfache Assembler−Anwendungen 5

Belegung der CPU−Register 5

0. Inhalt 5 _______________________________________________________


Zugriff auf globale Variable 5

Zugriff auf lokale Variable 7

4.3 Assembler fב¶r Experten 4 ΓêÆ 8

Pseudo−Opcodes 8

Belegung der CPU−Register 9

Zugriff auf Modula−Konstanten 1 0

Zugriff auf globale Variable. speziell ARRAYs 1 1

Zugriff auf lokale Variable 1 1

Fehlerprב¶fungen vom Assembler 1 3

Aufruf globaler Prozeduren, Parameterב¶bergabe 1 3

Aufruf lokaler Prozeduren 1 5

ב£bernahme von Parametern 1 6

5. Modulbibliothek


5.1 Allgemeines zur Bibliothek 5 − 1

Funktionsב¶bersicht 1

Vorhandene Module 2

Allgemeiner Hinweis − Sys−Funktionen 6

ב£bernahme (Portierung) fremder ModulaΓêÆ2 Programme 7

Strings 7

Ein−/Ausgabe 8

Hinweise zu den Quelltexten... 1 0

... MM2Shell 1 0

... GEMError & SimpleError 1 1

... MOSConfig 1 1

Bedienung der Eingabefunktionen 1 1

Eingabeformate bei Convert & StrConv 1 2

Hinweise zu GEMDOSIO und TOSIO 1 2

Hinweise zu ALLOCATE 1 2

Hinweise zu AES−/VDI−Funktionen (FormAlert, ...Mouse) 1 3

Der richtige Gebrauch der UpdateWindow−Funktion... 1 3

... bei der Accessory−Initialisierung 1 3

... bei Timer−Events mit GEMDOS−Aufrufen 1 3

Hinweise zur Benutzung der FPU in Accessories 1 4

5.2 Programme, Module und Prozesse 5 − 1 5

Das Modulkonzept 1 5

Vom Modul zum gelinkten Programm 1 6

Prozesse 1 8

Prozeבƒkontrolle 22

Prozeבƒinformationen 23

5.3 Laufzeitfehler−Behandlung 5 − 25

Was sind Laufzeitfehler ? 25

Fehlergruppen 26

Allgemeine Laufzeitfehler 27

Dateifehler 30

0. Inhalt 6
_______________________________________________________


Fehlerbehandlung mit dem Modul EasyExceptions 31

Accessories 32

5.4 Dateisystem 5 − 33

Dateimodi (Binבñr/Text) 33

בûffnen einer Datei 34

Ein−/Ausgabe von Daten 35

Dateiende−Behandlung 36

Diverse Dateifunktionen (Modul 'Files') 40

Fehlerbehandlung im Dateisystem 41

Unterschiede zwischen BinבñrΓêÆ und Textmodus 42

Modul 'InOut' 43

Konfiguration eigener Unittreiber 44

5.5 Grafikdarstellung im Atari ST 5 − 45
Einfב¶hrung 45

5.6 Line A − Routinen 47

Der Fontheader 47

Die Line A − Variablen 49

Der Deskriptor fב¶r BitBlockTransfer 52

5.7 GEM 54

VDI 54

AES 55

Mega−GEM 67

Ganz unten... 68

Anhang

A.1 Fehlermeldungen des Compilers

A.2 Fehlermeldungen zur Laufzeit und des Loaders

A.3 Interne Datenformate

A.4 Registerbelegung zur Laufzeit

A.5 ב£bersicht Compileroptionen

A.6 Backus−Naur−Notation

A.7 Modula−Syntaxdiagramme

A.8 Modula−Syntax in Backus−Naur−Notation

A.9 Aufbau der Codemodule

A.10Begriffserlבñuterungen

A.11 Anpassen alter Megamax−Programme (Systemversion 1)

B. Texte der Definitionsmodule


C.1 Dokumentation zum Editor GEP ED _

C.2 Dokumentation zum Editor GME

C.3 Dokumentation zum Resource Construction Program


D. ב£bersicht aller Bezeichner der Bibliothek

E. Index